package nextfm.bean;

import java.util.List;

import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;

import nextfm.dao.DAOArtista;
import nextfm.model.Artista;

public class ArtistaBean {
	
	DAOArtista daoArtista = new DAOArtista();
	int id;
	String nome;
	String descricao;
	String imagem;
	Artista artistaSelecionado;
	List<Artista> artistas = daoArtista.findAll();
	int scrollerPage = 1;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getImagem() {
		return imagem;
	}

	public void setImagem(String imagem) {
		this.imagem = imagem;
	}
	
	public Artista getArtistaSelecionado() {
		return artistaSelecionado;
	}

	public void setArtistaSelecionado(Artista artistaSelecionado) {
		this.artistaSelecionado = artistaSelecionado;
	}

	public List<Artista> getArtistas() {
		return artistas;
	}

	public void setArtistas(List<Artista> artistas) {
		this.artistas = artistas;
	}

	public int getScrollerPage() {
		return scrollerPage;
	}

	public void setScrollerPage(int scrollerPage) {
		this.scrollerPage = scrollerPage;
	}

	public String remover() {
		try {
			System.out.println("Removendo artista de id" + getId());
			Artista artista = daoArtista.find(getId());
			daoArtista.begin();
			daoArtista.remove(artista);
			daoArtista.commit();
			return "success";
		}

		catch (Exception e) {
			e.printStackTrace();
			return "failure";
		}
	}

	public String editar() {
		
		try {
			Artista artista = daoArtista.find(getId());
			artista.setNome(getNome());
			artista.setDescricao(getDescricao());
			artista.setImagem(getImagem());
			System.out.println("Editando artista de id " + getId());
			daoArtista.begin();
			daoArtista.merge(artista);
			daoArtista.commit();
			return "success";
		}
		
		catch (Exception e) {
			return "failure";
		}
		
	}
	
	public String cadastrar() {
		try {
			System.out.println("Adicionando artista " + getNome());
			Artista artista = new Artista(getNome(), getDescricao(), getImagem());
			daoArtista.begin();
			daoArtista.persist(artista);
			daoArtista.commit();
			return "success";
		}
		
		catch (Exception e) {
			e.printStackTrace();
			return "failure";
		}
	}
	
	public void selecionarArtista(ActionEvent evento){  
        UIParameter component = (UIParameter) evento.getComponent().findComponent("codigoEdicao");  
        int codigo = Integer.parseInt(component.getValue().toString());   
        setArtistaSelecionado(daoArtista.find(codigo));
        setDescricao(artistaSelecionado.getDescricao());
        setImagem(artistaSelecionado.getImagem());
        setNome(artistaSelecionado.getNome());
        setId(codigo);
    }
	
}
